package com.tedu.spring.life;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * Spring Bean对象的生命周期
 */
@Component
public class Life {
    private String meaning;

    // 1.实例化
    public Life() {
        System.out.println("1:实例化阶段[调用无参构造方法]");
    }

    // 2.属性赋值
    @Value("世界那么大,我想去看看")
    public void setMeaning(String meaning) {
        this.meaning = meaning;
        System.out.println("2:属性赋值[set方法]");
    }

    // 3.生命周期初始化方法
    @PostConstruct
    public void init() {
        System.out.println("3:生命周期初始化方法");
    }

    // 5.生命周期销毁方法
    @PreDestroy
    public void destroy() {
        System.out.println("5.生命周期销毁方法");
    }
}














